<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="rdc-Parameters-AGP-Report" />
  <url value="https://roche.com/fhir/iop/StructureDefinition/rdc-Parameters-AGP-Report" />
  <name value="RdcParametersAGPReport" />
  <title value="RDC Parameters AGP Report" />
  <status value="active" />
  <experimental value="false" />
  <description value="A profile for defining the parameters to be sent as a payload to generate an AGP report for a patient within an organization." />
  <fhirVersion value="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Parameters" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Parameters" />
  <derivation value="constraint" />
  <differential>
    <element id="Parameters.parameter">
      <path value="Parameters.parameter" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="name" />
        </discriminator>
        <rules value="closed" />
      </slicing>
    </element>
    <element id="Parameters.parameter:reportType">
      <path value="Parameters.parameter" />
      <sliceName value="reportType" />
      <short value="Specifies the type of the report for request" />
      <definition value="Text encoding" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:reportType.name">
      <path value="Parameters.parameter.name" />
      <patternString value="reportType" />
    </element>
    <element id="Parameters.parameter:reportType.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Encoding" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:reportType.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:reportType.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:subject">
      <path value="Parameters.parameter" />
      <sliceName value="subject" />
      <short value="Patient reference" />
      <definition value="Reference to Patient resource with personal id." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:subject.name">
      <path value="Parameters.parameter.name" />
      <patternString value="subject" />
    </element>
    <element id="Parameters.parameter:subject.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Patient reference" />
      <min value="1" />
      <type>
        <code value="Reference" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:subject.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:subject.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:locale">
      <path value="Parameters.parameter" />
      <sliceName value="locale" />
      <short value="Specifies the language and locale encoding" />
      <definition value="Text encoding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:locale.name">
      <path value="Parameters.parameter.name" />
      <patternString value="locale" />
    </element>
    <element id="Parameters.parameter:locale.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <short value="Encoding" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:locale.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:locale.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:orientation">
      <path value="Parameters.parameter" />
      <sliceName value="orientation" />
      <short value="Defines the page orientation of the PDF, such as portrait or landscape (default portrait)." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:orientation.name">
      <path value="Parameters.parameter.name" />
      <patternString value="orientation" />
    </element>
    <element id="Parameters.parameter:orientation.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="code" />
      </type>
      <constraint>
        <key value="valueCodeConstraint" />
        <severity value="error" />
        <human value="The value for orientation must be either 'portrait' or 'landscape'." />
        <expression value="$this = 'portrait' or $this = 'landscape'" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:orientation.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:orientation.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:timezone-offset">
      <path value="Parameters.parameter" />
      <sliceName value="timezone-offset" />
      <short value="UTC offset for a time zone in ±hh:mm format (default will be server timezone)." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:timezone-offset.name">
      <path value="Parameters.parameter.name" />
      <patternString value="timezone-offset" />
    </element>
    <element id="Parameters.parameter:timezone-offset.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:timezone-offset.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:timezone-offset.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:time-format">
      <path value="Parameters.parameter" />
      <sliceName value="time-format" />
      <short value="Specifies the time format, such as 12H for 12-hour or 24H for 24-hour format (default 24H)." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:time-format.name">
      <path value="Parameters.parameter.name" />
      <patternString value="time-format" />
    </element>
    <element id="Parameters.parameter:time-format.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="code" />
      </type>
      <constraint>
        <key value="valueCodeConstraint" />
        <severity value="error" />
        <human value="The value for time-format must be either '12H' or '24H'." />
        <expression value="$this = '12H' or $this = '24H'" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:time-format.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:time-format.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:unit">
      <path value="Parameters.parameter" />
      <sliceName value="unit" />
      <short value="Specifies the unit mg/dL|mmol/L." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:unit.name">
      <path value="Parameters.parameter.name" />
      <patternString value="unit" />
    </element>
    <element id="Parameters.parameter:unit.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="Coding" />
      </type>
      <constraint>
        <key value="valueCodeConstraint" />
        <severity value="error" />
        <human value="The value for unit must be either 'mg/dL' or 'mmol/L'." />
        <expression value="$this.code = 'mg/dL' or $this.code = 'mmol/L'" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:unit.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:unit.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:effectivePeriod">
      <path value="Parameters.parameter" />
      <sliceName value="effectivePeriod" />
      <short value="Represents the start and end dates defining the period.The maximum Period for the generation of report is 14 days." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:effectivePeriod.name">
      <path value="Parameters.parameter.name" />
      <patternString value="effectivePeriod" />
    </element>
    <element id="Parameters.parameter:effectivePeriod.value[x]">
      <path value="Parameters.parameter.value[x]" />
      <min value="1" />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Parameters.parameter:effectivePeriod.resource">
      <path value="Parameters.parameter.resource" />
      <max value="0" />
    </element>
    <element id="Parameters.parameter:effectivePeriod.part">
      <path value="Parameters.parameter.part" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>