=== Ansico Diagnosekoder ===
Contributors: aphandersen
Tags: icd-10, icd-11, icpc, atc, diagnosis, gutenberg, search
Requires at least: 6.2
Tested up to: 6.5
Stable tag: 1.1.2
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Et WordPress-plugin der tilføjer Gutenberg-blokke til søgning i ICD-10,
ICD-11, ICPC og ATC diagnosekoder.

== Beskrivelse ==
- Tilføjer blokken "Ansico Diagnosekoder" med live resultater
- Tilføjer blokken "Ansico Diagnosekoder Søgefelt" til sidebar eller andre kompakte områder
- Tilføjer blokken "Ansico Diagnosekoder Kodekort" til visning af side-tilknyttede koder
- Backend-side under Indstillinger
- Upload af ny fil erstatter eksisterende datagrundlag
- Søger i felterne kode og tekst (FULLTEXT-indeks + tokeniseret LIKE-fallback)
- Søgeord highlightes i resultaterne
- Klik på et resultat kopierer diagnosekoden

== Installation ==
1. Upload plugin-mappen til /wp-content/plugins/ eller installer ZIP-filen via WordPress.
2. Aktivér pluginet.
3. Gå til Indstillinger → Ansico Diagnosekoder.
4. Upload din datafil.
5. Indsæt blokken "Ansico Diagnosekoder" på en side.

== Ændringer i 1.1.2 ==

=== Ydeevne ===
* [#1] Custom database-tabel (wp_ansico_diagnosekoder) med FULLTEXT-indeks erstatter
  lagring af rækker i wp_options-blobs. Giver dramatisk hurtigere søgning og lavere
  hukommelsesforbrug ved store datasæt (ICD-10 har ~18.000 koder).
* [#2] Søgning sker nu via SQL (FULLTEXT eller tokeniseret LIKE) i stedet for PHP-loop
  over hele datasættet i hukommelsen.
* [#3] Transient-cache på søgeresultater (5 min TTL). Cache invalideres automatisk
  ved import, sletning, ændring af favoritter og ændring af URL-tilknytninger.

=== Sikkerhed ===
* [#4] Rate limiting på de offentlige REST-endpoints /search, /details og /page-state:
  maks. 60 forespørgsler pr. minut pr. IP-adresse. Returnerer HTTP 429 ved overskridelse.
  Indloggede brugere er fritaget.

=== Søgekvalitet ===
* [#5] Tokeniseret søgning i LIKE-fallback: hver del af et multi-ords søgeudtryk
  skal matche (AND-semantik), så "rød hud" kun finder poster med begge ord.
  FULLTEXT boolean mode giver samme adfærd med bedre ydeevne.

=== Kodekvalitet ===
* [#6] Ny fælles hjælpeklasse Ansico_Diagnosekoder_Util med normalize_code(),
  normalize_version() og make_key(). De to identiske implementeringer i Parser og
  REST er fjernet og erstattet af kald til Util.

=== Migrering ===
* Ved aktivering migreres eksisterende data fra wp_options automatisk til den
  nye database-tabel, og de gamle option-blobs slettes for at frigøre plads.
* Eksisterende favoritter og URL-tilknytninger på sider bevares uændret.

== Changelog ==

= 1.1.2 =
* Custom DB-tabel med FULLTEXT-indeks (#1)
* SQL-baseret søgning erstatter PHP-loop (#2)
* Transient-cache på søgeresultater (#3)
* Rate limiting på offentlige REST-endpoints (#4)
* Tokeniseret multi-ords søgning (#5)
* Fælles Util-klasse eliminerer kode-duplikering (#6)
* Automatisk migrering af eksisterende data fra wp_options til DB-tabel

= 1.1.1.1 =
* Understøttelse af ICPC og ATC datasæt tilføjet
* Composite nøgle-format for favoritter og links (CODE|VERSION)
* Migrering af legacy plain-code metadata

= 1.0.0 =
* Første stabile release.

== Support ==
Support: https://ansico.dk/Ansico/Ansico-diagnosekoder
