Filtrera på ssyk_code_2012

Hej,
Jag försöker få ut yrkesgrupper baserat på deras ssyk_code_2012.
Jag förösker med följande GraphQL, men det går inte. ssyk_code_2012 är inte filtreringsbart.

query MyQuery {

  concepts(type: "ssyk-level-4", ssyk_code_2012: "5*") {

    id

    preferred_label

    ssyk_code_2012

  }

}

Jag vill få ut alla concept i ssyk-level-4 som har ssyk_code_2012 som börjar på specifika nummer.
Jag vill t.ex få all som börjar på 4,5,6,7,8,0 i samma fråga.

Har ni några tips?

Vi har inte implementerat filtrering än i GraphQL endpointen men vi är intresserade att titta på det mer framöver. Vi kan dock inte svara på när i tiden vi kommer att börja arbeta med det.

Som en work around så skulle du kunna hårdkoda en översättning mellan concept-id och ssyk-level-1.
Det är bara 10 stycken värden.

Här har jag plockat ut alla ssyk-level-1 concept id:n

{
  "data": {
    "concepts": [
      {
        "id": "P1Gv_dsN_3wh",
        "preferred_label": "Yrken inom lantbruk, trädgård, skogsbruk och fiske",
        "ssyk_code_2012": "6"
      },
      {
        "id": "u1RN_Fih_rgS",
        "preferred_label": "Service-, omsorgs- och försäljningsyrken",
        "ssyk_code_2012": "5"
      },
      {
        "id": "Ps1i_4PB_pR3",
        "preferred_label": "Yrken inom administration och kundtjänst",
        "ssyk_code_2012": "4"
      },
      {
        "id": "wuDs_Npv_qNZ",
        "preferred_label": "Yrken med krav på kortare utbildning eller introduktion",
        "ssyk_code_2012": "9"
      },
      {
        "id": "qjsN_7xY_41K",
        "preferred_label": "Yrken med krav på högskolekompetens eller motsvarande",
        "ssyk_code_2012": "3"
      },
      {
        "id": "KwoA_9tp_f7q",
        "preferred_label": "Chefsyrken",
        "ssyk_code_2012": "1"
      },
      {
        "id": "Pane_Knc_1Zk",
        "preferred_label": "Militära yrken",
        "ssyk_code_2012": "0"
      },
      {
        "id": "2xXe_2KC_Nf2",
        "preferred_label": "Yrken inom byggverksamhet och tillverkning",
        "ssyk_code_2012": "7"
      },
      {
        "id": "Vbui_aPd_Xqj",
        "preferred_label": "Yrken inom maskinell tillverkning och transport m.m.",
        "ssyk_code_2012": "8"
      },
      {
        "id": "tFq4_83q_aww",
        "preferred_label": "Yrken med krav på fördjupad högskolekompetens",
        "ssyk_code_2012": "2"
      }
    ]

Och så kan man använda concept-idt för att slå upp dess ssyk-level-4 .

Till exempel om du vill få ut alla ssyk-level-4 som finns under “Yrken inom lantbruk, trädgård, skogsbruk och fiske”

query MyQuery {
  concepts(id: "P1Gv_dsN_3wh") {
    preferred_label
    narrower(type: "ssyk-level-2") {
      narrower(type: "ssyk-level-3") {
        narrower(type: "ssyk-level-4") {
          id
          preferred_label
        }
      }
    }
  }
}

Svar:

{
  "data": {
    "concepts": [
      {
        "preferred_label": "Yrken inom lantbruk, trädgård, skogsbruk och fiske",
        "narrower": [
          {
            "narrower": [
              {
                "narrower": [
                  {
                    "id": "Lrsj_wRZ_sFV",
                    "preferred_label": "Övriga djuruppfödare och djurskötare"
                  },
                  {
                    "id": "KYmy_iqC_xiQ",
                    "preferred_label": "Uppfödare och skötare av lantbrukets husdjur"
                  },
                  {
                    "id": "MSzH_F2n_Emb",
                    "preferred_label": "Uppfödare och skötare av sällskapsdjur"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "RYCQ_ogb_uUY",
                    "preferred_label": "Växtodlare och djuruppfödare, blandad drift"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "XBh3_Xrm_C4R",
                    "preferred_label": "Trädgårdsanläggare m.fl."
                  },
                  {
                    "id": "k3R3_UkC_nK2",
                    "preferred_label": "Odlare av jordbruksväxter, frukt och bär"
                  },
                  {
                    "id": "2xQ4_4kh_kTZ",
                    "preferred_label": "Trädgårdsodlare"
                  }
                ]
              }
            ]
          },
          {
            "narrower": [
              {
                "narrower": [
                  {
                    "id": "qouP_wtb_93q",
                    "preferred_label": "Skogsarbetare"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "Lm3Z_gek_GYc",
                    "preferred_label": "Fiskare"
                  },
                  {
                    "id": "c8r8_e4L_gwj",
                    "preferred_label": "Fiskodlare"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

Om du vill slå upp barn till flera olika ssyk-level-1 med samma fråga är detta ocskå möjligt.
Till exempel

query MyQuery {
  ssyk_level_1_farming:concepts(id: "P1Gv_dsN_3wh") {
    preferred_label
    narrower(type: "ssyk-level-2") {
      narrower(type: "ssyk-level-3") {
        narrower(type: "ssyk-level-4") {
          id
          preferred_label
        }
      }
    }
  }
  ssyk_level_1_military:concepts(id: "Pane_Knc_1Zk") {
    preferred_label
    narrower(type: "ssyk-level-2") {
      narrower(type: "ssyk-level-3") {
        narrower(type: "ssyk-level-4") {
          id
          preferred_label
        }
      }
    }
  }
}

Svar:

{
  "data": {
    "ssyk_level_1_farming": [
      {
        "preferred_label": "Yrken inom lantbruk, trädgård, skogsbruk och fiske",
        "narrower": [
          {
            "narrower": [
              {
                "narrower": [
                  {
                    "id": "Lrsj_wRZ_sFV",
                    "preferred_label": "Övriga djuruppfödare och djurskötare"
                  },
                  {
                    "id": "KYmy_iqC_xiQ",
                    "preferred_label": "Uppfödare och skötare av lantbrukets husdjur"
                  },
                  {
                    "id": "MSzH_F2n_Emb",
                    "preferred_label": "Uppfödare och skötare av sällskapsdjur"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "RYCQ_ogb_uUY",
                    "preferred_label": "Växtodlare och djuruppfödare, blandad drift"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "XBh3_Xrm_C4R",
                    "preferred_label": "Trädgårdsanläggare m.fl."
                  },
                  {
                    "id": "k3R3_UkC_nK2",
                    "preferred_label": "Odlare av jordbruksväxter, frukt och bär"
                  },
                  {
                    "id": "2xQ4_4kh_kTZ",
                    "preferred_label": "Trädgårdsodlare"
                  }
                ]
              }
            ]
          },
          {
            "narrower": [
              {
                "narrower": [
                  {
                    "id": "qouP_wtb_93q",
                    "preferred_label": "Skogsarbetare"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "Lm3Z_gek_GYc",
                    "preferred_label": "Fiskare"
                  },
                  {
                    "id": "c8r8_e4L_gwj",
                    "preferred_label": "Fiskodlare"
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "ssyk_level_1_military": [
      {
        "preferred_label": "Militära yrken",
        "narrower": [
          {
            "narrower": []
          },
          {
            "narrower": [
              {
                "narrower": [
                  {
                    "id": "jXUQ_rUV_iBv",
                    "preferred_label": "Soldater m.fl."
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "dhgR_9jk_95r",
                    "preferred_label": "Specialistofficerare"
                  }
                ]
              },
              {
                "narrower": [
                  {
                    "id": "KiVA_anS_RJh",
                    "preferred_label": "Officerare"
                  }
                ]
              }
            ]
          },
          {
            "narrower": []
          }
        ]
      }
    ]
  }
}

Queryn kan man göra snyggare med hjälp av fragments.

https://graphql.org/learn/queries/#fragments

/Henrik

Tackar, matnyttig info. Jag provar :wink: