PackagesCanonicalsLogsProblems
    Packages
    br.go.ses.core@1.0.0
    https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional
description: Dados do Profissional de Saúde
package_name: br.go.ses.core
derivation: constraint
name: Profissional
type: Practitioner
elements:
  identifier:
    array: true
    min: 1
    max: 2
    index: 0
    elements:
      value: {index: 1}
    required: [value]
    slicing:
      rules: closed
      ordered: true
      description: Deve conter um ou dois identificadores, podendo ser CPF ou CNS ou ambos.
      discriminator:
      - {path: system, type: pattern}
      min: 1
      max: 2
      slices:
        cpf:
          match: {system: 'https://fhir.saude.go.gov.br/sid/cpf'}
          schema:
            index: 2
            extensions: {}
            elements:
              extension: {index: 3}
              use: {index: 4}
              type: {index: 5}
              system:
                pattern: {type: uri, value: 'https://fhir.saude.go.gov.br/sid/cpf'}
                type: uri
                index: 6
              value: {index: 7}
              period: {index: 8}
              assigner: {index: 9}
            required: [system, value]
        cns:
          match: {system: 'https://fhir.saude.go.gov.br/sid/cns'}
          schema:
            index: 10
            extensions: {}
            elements:
              extension: {index: 11}
              use: {index: 12}
              type: {index: 13}
              system:
                pattern: {type: uri, value: 'https://fhir.saude.go.gov.br/sid/cns'}
                type: uri
                index: 14
              value: {index: 15}
              period: {index: 16}
              assigner: {index: 17}
            required: [system, value]
  name:
    constraint:
      RN04: {human: O text deve possuir pelo menos dois nomes separados por espaço., source: 'https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional', severity: error, expression: text.split(' ').count() > 1}
    index: 18
    extensions: {}
    elements:
      extension: {index: 19}
      use:
        pattern: {type: code, value: official}
        type: code
        index: 20
      text: {index: 21}
      family: {index: 22}
      given: {index: 23}
      prefix: {index: 24}
      suffix: {index: 25}
      period: {index: 26}
    required: [text, use]
  telecom:
    constraint:
      NumeroTelefoneValido: {human: 'Máscara de telefone para números nacionais (xx) xxxx-xxxx ou (xx) xxxxx-xxxx. Para números internacionais, o + significa que será utilizado o código do país, a lógica é de 1 a 3 dígitos de código do país (+X, +XX ou +XXX), na sequência uma quantidade de dígitos entre o código de área e o número propriamente dito que, somados ao código do país, não podem exceder 15 dígitos.', source: 'https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional', severity: warning, expression: '$this.where(system = ''phone'').select(value).all(matches(''^((\\(([0-9]{2})\\)) ([0-9]{4,5})\\-([0-9]{4}))|^((\\+\\d{1,3}) (\\d{2,3})) \\d{3,5}\\-\\d{4}$''))'}
      EmailValido: {human: Máscara de email xxx@xxx.xx, source: 'https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional', severity: error, expression: '$this.where(system = ''email'').select(value).all(matches(''^([\\w-\\.]+){1,64}@([\\w&&[^_]]+){2,255}(.[a-z]{2,}){1,}$''))'}
    index: 27
    slicing:
      rules: closed
      description: Número de telefone ou e-mail do profissional.
      discriminator:
      - {path: system, type: pattern}
      min: 1
      slices:
        phone:
          match: {system: phone}
          schema:
            array: true
            index: 28
            extensions: {}
            elements:
              extension: {index: 29}
              system:
                pattern: {type: code, value: phone}
                type: code
                index: 30
              value: {index: 31}
              use: {index: 32}
              rank: {index: 33}
              period: {index: 34}
            required: [system, value]
        email:
          match: {system: email}
          schema:
            array: true
            index: 35
            extensions: {}
            elements:
              extension: {index: 36}
              system:
                pattern: {type: code, value: email}
                type: code
                index: 37
              value: {index: 38}
              use: {index: 39}
              rank: {index: 40}
              period: {index: 41}
            required: [system, value]
  gender: {index: 42}
  birthDate:
    constraint:
      DataComPrecisaoDeDia: {human: Data deve ter a precisão de dia, source: 'https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional', severity: error, expression: $this.toString().length() = 10}
    index: 43
package_version: 1.0.0
class: profile
kind: resource
url: https://fhir.saude.go.gov.br/r4/core/StructureDefinition/profissional
base: http://hl7.org/fhir/StructureDefinition/Practitioner
version: 1.0.0
required: [birthDate, gender, identifier, name, telecom]