<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://npcr.se/fhir/StructureDefinition/npcr-specialist-visit-encounter" />
  <name value="NPCR_Specialist_Visit_Encounter" />
  <status value="draft" />
  <description value="Profile for the first specialist visit (Datum för 1:a besök på specialistmottagning) in NPCR Anmälan, based on Section 7.2.1 of InformationsspecifikationNPCRdiagnostik v1.6 and NPCR Manual för inrapportörer.&#xD;&#xA;&#xD;&#xA;Source variable covered:&#xD;&#xA;- D_specmottdatum (Datum för 1:a besök på specialistmottagning) → Encounter.period.start&#xD;&#xA;&#xD;&#xA;Per NPCR Manual: &quot;Ange datum för första besök på den mottagning som tar den första mellannålsbiopsin som säkerställer diagnosen prostatacancer. Om patienten är inneliggande, ange datum för inskrivning på vårdavdelning.&quot; This dual ambulatory/inpatient nature is reflected by leaving Encounter.class unconstrained (Must Support but not fixed).&#xD;&#xA;&#xD;&#xA;Service contract: GetActivities&#xD;&#xA;NKRR rule (Info Spec §7.2.1): Search from provtagningsdatum − 6 months (183 days) backward; primary lookup by KVÅ code, fallback to NPCR Kvalitetsregisterkod. If a KVÅ code exists in the interval, use the first one. If both KVÅ and Kvalitetsregisterkod exist, prefer KVÅ. If only Kvalitetsregisterkod exists across multiple dates, leave blank for manual entry.&#xD;&#xA;&#xD;&#xA;Information model note: NPCR Information Specification models this event as Aktivitet (activity), reflecting the NKRR-level abstraction inherited from HL7 v3 RIM where event-class information falls under the Act/Aktivitet category. FHIR provides a more granular event taxonomy: this Profile maps the NPCR Aktivitet to FHIR Encounter, because the clinical semantic — a patient's first contact with the specialist clinic, including potential inpatient admission — corresponds directly to FHIR's Encounter resource. The KVÅ code VJ125, used in NPCR Aktivitet to identify this event, is placed in Encounter.type, which carries the same semantic role as Procedure.code or Activity.code in FHIR.&#xD;&#xA;&#xD;&#xA;Documentation finding (Info Spec §7.2.1): The attribute table lists kodsystem 1.2.752.129.2.2.3.23 (Kvalitetsregisterkod) for both VJ125 and 484. However, VJ125 follows the KMÅ-structure naming convention (2 letters + 3 digits) and is documented in RCC SVF Kodningsvägledning as &quot;SVF prostatacancer - första besök i specialiserad vård&quot; — a Socialstyrelsen KVÅ code. This Profile follows the NKRR rule narrative (KVÅ vs Kvalitetsregisterkod) rather than the attribute table literal, slicing Encounter.type into two codings: KVÅ (required) and Kvalitetsregisterkod (optional).&#xD;&#xA;&#xD;&#xA;Out of scope: Variables D_SjhKlin, D_Sjhkod, D_KlinKod are reporting form metadata (auto-populated from INCA login HSA-id per NPCR Manual page 37) and not clinical encounter data." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Encounter" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Encounter" />
  <derivation value="constraint" />
  <differential>
    <element id="Encounter">
      <path value="Encounter" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.status">
      <path value="Encounter.status" />
      <fixedCode value="finished" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.class">
      <path value="Encounter.class" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type">
      <path value="Encounter.type" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding">
      <path value="Encounter.type.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvaSpecialistVisit">
      <path value="Encounter.type.coding" />
      <sliceName value="kvaSpecialistVisit" />
      <short value="Practitioners should follow NKRR rule: provide KVÅ where available, fall back to Kvalitetsregisterkod when not" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvaSpecialistVisit.system">
      <path value="Encounter.type.coding.system" />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.752.116.1.3.2.1.4" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvaSpecialistVisit.code">
      <path value="Encounter.type.coding.code" />
      <min value="1" />
      <fixedCode value="VJ125" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvaSpecialistVisit.display">
      <path value="Encounter.type.coding.display" />
      <fixedString value="SVF prostatacancer - första besök i specialiserad vård" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvalitetsregisterkod">
      <path value="Encounter.type.coding" />
      <sliceName value="kvalitetsregisterkod" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvalitetsregisterkod.system">
      <path value="Encounter.type.coding.system" />
      <min value="1" />
      <fixedUri value="urn:oid:1.2.752.129.2.2.3.23" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvalitetsregisterkod.code">
      <path value="Encounter.type.coding.code" />
      <min value="1" />
      <fixedCode value="484" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type.coding:kvalitetsregisterkod.display">
      <path value="Encounter.type.coding.display" />
      <fixedString value="Första besök i specialiserad vård" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.subject">
      <path value="Encounter.subject" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://npcr.se/fhir/StructureDefinition/npcr-patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.period">
      <path value="Encounter.period" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.period.start">
      <path value="Encounter.period.start" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>