{
  "resourceType": "StructureDefinition",
  "url": "https://eng.org/fhir/StructureDefinition/MyServiceRequest",
  "name": "MyServiceRequest",
  "status": "draft",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "ServiceRequest",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/ServiceRequest",
  "derivation": "constraint",
  "differential": {
    "element": [
      {
        "id": "ServiceRequest.identifier",
        "path": "ServiceRequest.identifier",
        "slicing": {
          "discriminator": [
            {
              "type": "value",
              "path": "type.coding.code"
            }
          ],
          "rules": "closed"
        },
        "short": "Identificativi associati alla richiesta.",
        "definition": "Identificativi associati alla richiesta.",
        "comment": "L'elemento identifier.type è utilizzato per distinguere tra gli identificatori assegnati dall'ordinante (noto come 'Placer' in HL7 v2) e il produttore delle osservazioni in risposta all'ordine (noto come 'Filler' in HL7 v2)."
      },
      {
        "id": "ServiceRequest.identifier:PLAC",
        "path": "ServiceRequest.identifier",
        "sliceName": "PLAC",
        "short": "Placer identifier.",
        "definition": "Identificativo staccato dal sistema che crea l'ordine.",
        "comment": "Il system deve seguire questa struttura: 'http://www.[nome prodotto o fornitore].it/identifiers/prestazione'."
      },
      {
        "id": "ServiceRequest.identifier:PLAC.type",
        "path": "ServiceRequest.identifier.type",
        "short": "Descrizione dell'identificatore.",
        "definition": "Un tipo codificato per l'identificatore che può essere usato per determinare quale identificatore usare per uno scopo specifico.",
        "comment": "Questo elemento si occupa solo di categorie generali di identificatori. Non deve essere utilizzato per i codici che corrispondono a 1..1 con il sistema Identifier.system. Alcuni identificatori possono rientrare in più categorie a causa dell'uso comune. Quando il sistema è noto, un tipo non è necessario perché il tipo fa sempre parte della definizione del sistema. Tuttavia, spesso i sistemi devono gestire identificatori di cui non si conosce il sistema. Non esiste una relazione 1:1 tra tipo e sistema, poiché molti sistemi diversi hanno lo stesso tipo."
      },
      {
        "id": "ServiceRequest.identifier:PLAC.type.coding",
        "path": "ServiceRequest.identifier.type.coding",
        "short": "Codice definito da un sistema terminologico.",
        "definition": "Un riferimento a un codice definito da un sistema terminologico.",
        "comment": "I codici possono essere definiti in modo molto casuale in enumerazioni o elenchi di codici, fino a definizioni molto formali come SNOMED CT - si vedano i Core Principles HL7 v3 per maggiori informazioni. L'ordine dei codici non è definito e non deve essere usato per dedurre il significato. In generale, al massimo uno solo dei valori di codifica sarà etichettato come UserSelected = true."
      },
      {
        "id": "ServiceRequest.identifier:PLAC.type.coding.code",
        "path": "ServiceRequest.identifier.type.coding.code",
        "short": "Simbolo nella sintassi definita dal sistema.",
        "definition": "Un simbolo nella sintassi definita dal sistema. Il simbolo può essere un codice predefinito o un'espressione in una sintassi definita dal sistema di codifica (ad esempio, post-coordinazione).",
        "comment": "Si noti che le stringhe FHIR non devono superare la dimensione di 1MB.",
        "patternCode": "PLAC",
        "constraint": [
          {
            "key": "plac-case",
            "severity": "error",
            "human": "Il codice type.coding.code deve essere PLAC o plac.",
            "expression": "matches('^(PLAC|plac)$')"
          }
        ]
      },
      {
        "id": "ServiceRequest.identifier:PLAC.type.coding.display",
        "path": "ServiceRequest.identifier.type.coding.display",
        "short": "Rappresentazione definita dal sistema.",
        "definition": "Una rappresentazione del significato del codice nel sistema, secondo le regole del sistema.",
        "comment": "Si noti che le stringhe FHIR non devono superare la dimensione di 1MB.",
        "fixedString": "Plac Identifier"
      },
      {
        "id": "ServiceRequest.identifier:PLAC.system",
        "path": "ServiceRequest.identifier.system",
        "short": "Lo spazio dei nomi per il valore dell'identificatore.",
        "definition": "Stabilisce lo spazio dei nomi per il valore, ovvero un URL che descrive un insieme di valori unici.",
        "comment": "Il system deve seguire questa struttura: 'http://www.[nome prodotto o fornitore].it/identifiers/prestazione'.",
        "example": [
          {
            "label": "esempio di system",
            "valueUri": "http://www.nomeProdottoOFornitore.it/identifiers/prestazione"
          }
        ],
        "constraint": [
          {
            "key": "plac-system",
            "severity": "error",
            "human": "Il system deve seguire questa struttura: 'http://www.[nome prodotto o fornitore].it/identifiers/prestazione'.",
            "expression": "startsWith('http://www.') and endsWith('.it/identifiers/prestazione')"
          }
        ]
      }
    ]
  }
}