Skip to content

Commit

Permalink
Merge pull request #203 from hl7ch/196_VeKa
Browse files Browse the repository at this point in the history
196 veka
  • Loading branch information
ziegm authored Feb 7, 2023
2 parents 6a1088a + 903a9ad commit 890c214
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 12 deletions.
8 changes: 7 additions & 1 deletion input/ch.fhir.ig.ch-core.xml
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
<reference value="Patient/ElisabethBroennimannByBFH"/>
</reference>
<name value="Elisabeth Broennimann by BFH"/>
<description value="Patient with contact details, marital status (eCH &amp; FHIR) and reference to the general practitioner (GP)"/>
<description value="Patient with insurance card number as identifier, contact details, marital status (eCH &amp; FHIR) and reference to the general practitioner (GP)"/>
<exampleCanonical value="http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient"/>
</resource>
<resource>
Expand Down Expand Up @@ -659,6 +659,12 @@
</reference>
<exampleBoolean value="false"/>
</resource>
<resource>
<reference>
<reference value="StructureDefinition/ch-core-veka-identifier"/>
</reference>
<exampleBoolean value="false"/>
</resource>
<resource>
<reference>
<reference value="StructureDefinition/ch-core-patient-ech-11-placeofbirth"/>
Expand Down
4 changes: 4 additions & 0 deletions input/examples/patient/ElisabethBroennimannByBFH.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
<source value="https://www.ti.bfh.ch/de/bachelor/medizininformatik.html"/>
<profile value="http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-patient"/>
</meta>
<identifier>
<system value="urn:oid:2.16.756.5.30.1.123.100.1.1.1" />
<value value="80756015090002647590" />
</identifier>
<name>
<family value="Brönnimann-Bertholet"/>
<given value="Elisabeth"/>
Expand Down
3 changes: 3 additions & 0 deletions input/pages/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ All significant changes to this FHIR implementation guide will be documented on

### Current Ballot (2023)

#### Added
* [#196](https://github.com/hl7ch/ch-core/issues/196): Data type profile [VEKAIdentifier](StructureDefinition-ch-core-veka-identifier.html) for [Coverage.identifier](StructureDefinition-ch-core-coverage.html) and new also for [Patient.identifier](StructureDefinition-ch-core-patient.html)

#### Changed / Updated
* [#195](https://github.com/hl7ch/ch-core/issues/195): [CH Core Address](StructureDefinition-ch-core-address.html) - Add extension iso21090-ADXP-streetName to CH Core Address line
* [#198](https://github.com/hl7ch/ch-core/issues/198): [CH Core Composition EPR](StructureDefinition-ch-core-composition-epr-definitions.html#diff_Composition.extension:informationRecipient) - Relax information recipient cardinality to zero
Expand Down
30 changes: 19 additions & 11 deletions input/resources/structuredefinition/ch-core-coverage.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<short value="CH Core Coverage"/>
<definition value="This is basic constraint on Coverage for use in CH Core resources."/>
</element>

<element id="Coverage.identifier">
<path value="Coverage.identifier" />
<slicing>
Expand All @@ -55,23 +56,30 @@
<rules value="open" />
</slicing>
</element>
<element id="Coverage.identifier:insurancecardnumber">
<path value="Coverage.identifier" />
<sliceName value="insurancecardnumber" />
<short value="Insurance card number (Swiss insurance card v1)" />
<!-- Slice insuranceCardNumber (VEKA) -->
<element id="Coverage.identifier:insuranceCardNumber">
<path value="Coverage.identifier"/>
<sliceName value="insuranceCardNumber"/>
<short value="Insurance card number (Swiss insurance card v1)"/>
<definition value="Cardnumber Swiss insurance card v1" />
<type>
<code value="Identifier"/>
<profile value="http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-veka-identifier"/>
</type>
<patternIdentifier>
<system value="urn:oid:2.16.756.5.30.1.123.100.1.1.1" />
</patternIdentifier>
</element>
<element id="Coverage.identifier:insurancecardnumber.system">
<path value="Coverage.identifier.system" />
<short value="OID of the insurance card number" />
<min value="1" />
<fixedUri value="urn:oid:2.16.756.5.30.1.123.100.1.1.1" />
</element>
<element id="Coverage.identifier:insurancecardnumber.value">
<element id="Coverage.identifier:insuranceCardNumber.value">
<path value="Coverage.identifier.value" />
<short value="Insurance card number of the patient (20 digits)" />
<min value="1" />
</element>
<element id="Coverage.identifier:insuranceCardNumber.period.end">
<path value="Coverage.identifier.period.end" />
<short value="Expiration date of the insurance card" />
</element>

<element id="Coverage.policyHolder">
<path value="Coverage.policyHolder"/>
<type>
Expand Down
28 changes: 28 additions & 0 deletions input/resources/structuredefinition/ch-core-patient.xml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ See also [BFS](https://www.bfs.admin.ch/bfs/de/home/register/personenregister/re
<map value="hl7:recordTarget (1..1) / hl7:patientRole (1..1) / hl7:patient (1..1) / hl7:religiousAffiliationCode (0..1)"/>
</mapping>
</element>

<element id="Patient.identifier">
<path value="Patient.identifier" />
<slicing>
Expand All @@ -175,6 +176,7 @@ See also [BFS](https://www.bfs.admin.ch/bfs/de/home/register/personenregister/re
<map value="hl7:recordTarget (1..1) / hl7:patientRole (1..1) / hl7:id (1..*)"/>
</mapping>
</element>
<!-- Slice EPR-SPID -->
<element id="Patient.identifier:EPR-SPID">
<path value="Patient.identifier" />
<sliceName value="EPR-SPID" />
Expand All @@ -190,6 +192,7 @@ See also [BFS](https://www.bfs.admin.ch/bfs/de/home/register/personenregister/re
<system value="urn:oid:2.16.756.5.30.1.127.3.10.3" />
</patternIdentifier>
</element>
<!-- Slice AHVN13 -->
<element id="Patient.identifier:AHVN13">
<path value="Patient.identifier" />
<sliceName value="AHVN13" />
Expand All @@ -210,6 +213,7 @@ See also [BFS](https://www.bfs.admin.ch/bfs/de/home/register/personenregister/re
<short value="AHVN13 / NAVS13 of the patient (13 digits starting with 756, no separation points)" />
<min value="1" />
</element>
<!-- Slice LocalPid -->
<element id="Patient.identifier:LocalPid">
<path value="Patient.identifier" />
<sliceName value="LocalPid" />
Expand All @@ -233,6 +237,30 @@ See also [BFS](https://www.bfs.admin.ch/bfs/de/home/register/personenregister/re
<path value="Patient.identifier.value" />
<min value="1" />
</element>
<!-- Slice insuranceCardNumber (VEKA) -->
<element id="Patient.identifier:insuranceCardNumber">
<path value="Patient.identifier"/>
<sliceName value="insuranceCardNumber"/>
<short value="Insurance card number (Swiss insurance card v1)"/>
<definition value="Cardnumber Swiss insurance card v1" />
<type>
<code value="Identifier"/>
<profile value="http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-veka-identifier"/>
</type>
<patternIdentifier>
<system value="urn:oid:2.16.756.5.30.1.123.100.1.1.1" />
</patternIdentifier>
</element>
<element id="Patient.identifier:insuranceCardNumber.value">
<path value="Patient.identifier.value" />
<short value="Insurance card number of the patient (20 digits)" />
<min value="1" />
</element>
<element id="Patient.identifier:insuranceCardNumber.period.end">
<path value="Patient.identifier.period.end" />
<short value="Expiration date of the insurance card" />
</element>

<element id="Patient.name">
<path value="Patient.name"/>
<type>
Expand Down
40 changes: 40 additions & 0 deletions input/resources/structuredefinition/ch-core-veka-identifier.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="ch-core-veka-identifier" />
<url value="http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-veka-identifier" />
<name value="VEKAIdentifier" />
<title value="Insurance Card Number (Identifier)" />
<status value="active" />
<description value="Identifier in 20-digit format. The number shall have exactly 20 digits and start with 756." />
<kind value="complex-type" />
<abstract value="false" />
<type value="Identifier" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Identifier" />
<derivation value="constraint" />
<differential>
<element id="Identifier">
<path value="Identifier" />
</element>
<element id="Identifier.system">
<path value="Identifier.system" />
<min value="1" />
<fixedUri value="urn:oid:2.16.756.5.30.1.123.100.1.1.1" />
</element>
<element id="Identifier.value">
<path value="Identifier.value" />
<min value="1" />
<constraint>
<key value="veka-length" />
<severity value="error" />
<human value="Insurance card number must be exactly 20 characters long" />
<expression value="value.matches('^[0-9]{20}$')" />
</constraint>
<constraint>
<key value="veka-startswith807560" />
<severity value="error" />
<human value="Insurance card number must start with 807560" />
<expression value="value.startsWith('807560')" />
</constraint>
</element>
</differential>
</StructureDefinition>

0 comments on commit 890c214

Please sign in to comment.