Skip to content
This repository has been archived by the owner on Jan 19, 2023. It is now read-only.

Commit

Permalink
Anchor all regular expressions.
Browse files Browse the repository at this point in the history
  • Loading branch information
christian-schlichtherle committed Nov 6, 2020
1 parent 52a924d commit 8460e26
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/main/schematron/dre0.sch
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@
>Eine DiGA-Rechnung muß eine Rechnungsnummer enthalten.</assert>
<assert id="DRE0-ED-2" test="normalize-space(ram:TypeCode) = '380'"
>Eine DiGA-Rechnung muß vom Typ 380 (Commercial Invoice) sein.</assert>
<assert id="DRE0-ED-3" test="matches(normalize-space(ram:IssueDateTime/udt:DateTimeString[@format = '102']), '\d{8}')"
<assert id="DRE0-ED-3" test="matches(normalize-space(ram:IssueDateTime/udt:DateTimeString[@format = '102']), '^\d{8}$')"
>Eine DiGA-Rechnung muß ein Rechnungsdatum im Format '102' (JJJJMMTT) enthalten.</assert>
</rule>
<rule context="rsm:SupplyChainTradeTransaction">
<assert id="DRE0-SCTT-1" test="count(ram:IncludedSupplyChainTradeLineItem) = 1"
>Eine DiGA-Rechnung muß genau eine Position enthalten.</assert>
<assert id="DRE0-SCTT-2" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID = 'DiGAVEID']), '\d{8}')"
<assert id="DRE0-SCTT-2" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID = 'DiGAVEID']), '^\d{8}$')"
>Eine DiGA-Position muß eine DiGA-VE-ID mit exakt acht Stellen enthalten.</assert>
<assert id="DRE0-SCTT-3" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID = 'Freischaltcode']), '[A-Z2-7]{16}')"
<assert id="DRE0-SCTT-3" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID = 'Freischaltcode']), '^[A-Z2-7]{16}$')"
>Eine DiGA-Position muß einen Freischaltcode mit exakt 16 Stellen enthalten.</assert>
<assert id="DRE0-SCTT-4" test="normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:Name) != ''"
>Eine DiGA-Position muß einen DiGA-Namen enthalten.</assert>
<assert id="DRE0-SCTT-5" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SellByDateTime/udt:DateTimeString[@format = '102']), '\d{8}') or matches(normalize-space(ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102']), '\d{8}')"
<assert id="DRE0-SCTT-5" test="matches(normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SellByDateTime/udt:DateTimeString[@format = '102']), '^\d{8}$') or matches(normalize-space(ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102']), '^\d{8}$')"
>Eine DiGA-Rechnung muß den Tag der Leistungserbringung bzw. das Lieferdatum im Format "102" (JJJJMMTT) enthalten.</assert>
<assert id="DRE0-SCTT-6" test="not(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SellByDateTime/udt:DateTimeString[@format = '102'] and ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102']) or normalize-space(ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:IndividualTradeProductInstance/ram:SellByDateTime/udt:DateTimeString[@format = '102']) = normalize-space(ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102'])"
>Wenn der Tag der Leistungserbringung bzw. das Lieferdatum an verschiedenen Stellen angegeben ist, dann müssen diese Angaben übereinstimmen.</assert>
Expand All @@ -49,9 +49,9 @@
>Die Abrechnungsmenge muß "1" sein.</assert>
</rule>
<rule context="ram:ApplicableHeaderTradeAgreement">
<assert id="DRE0-AHTA-1" test="matches(normalize-space(ram:SellerTradeParty/ram:ID[@schemeID = 'IK']), '\d{9}')"
<assert id="DRE0-AHTA-1" test="matches(normalize-space(ram:SellerTradeParty/ram:ID[@schemeID = 'IK']), '^\d{9}$')"
>Eine DiGA-Rechnung muß das Institutionskennzeichen (IK) eines DiGA-Herstellers mit exakt neun Stellen enthalten.</assert>
<assert id="DRE0-AHTA-2" test="matches(normalize-space(ram:BuyerTradeParty/ram:ID[@schemeID = 'IK']), '\d{9}')"
<assert id="DRE0-AHTA-2" test="matches(normalize-space(ram:BuyerTradeParty/ram:ID[@schemeID = 'IK']), '^\d{9}$')"
>Eine DiGA-Rechnung muß das Institutionskennzeichen (IK) einer Krankenkasse mit exakt neun Stellen enthalten.</assert>
</rule>
<rule context="ram:ApplicableHeaderTradeSettlement">
Expand Down

0 comments on commit 8460e26

Please sign in to comment.