diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal.tsx" index ef77be682f..43a2bbba79 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal.tsx" @@ -7,9 +7,12 @@ import { FormProvider, useForm } from 'react-hook-form'; import { InnleggelsesperiodeDryRunResponse } from '../../../api/api'; import AddButton from '../add-button/AddButton'; import DeleteButton from '../delete-button/DeleteButton'; -import { FieldName } from '../innleggelsesperiodeoversikt/Innleggelsesperiodeoversikt'; import styles from './innleggelsesperiodeFormModal.css'; +export enum FieldName { + INNLEGGELSESPERIODER = 'innleggelsesperioder', +} + // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyType = any; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeoversikt/Innleggelsesperiodeoversikt.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeoversikt/Innleggelsesperiodeoversikt.tsx" index 62710001fb..09f3351fa1 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeoversikt/Innleggelsesperiodeoversikt.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/innleggelsesperiodeoversikt/Innleggelsesperiodeoversikt.tsx" @@ -8,15 +8,11 @@ import { InnleggelsesperiodeResponse } from '../../../types/InnleggelsesperiodeR import { findLinkByRel } from '../../../util/linkUtils'; import ContainerContext from '../../context/ContainerContext'; import AddButton from '../add-button/AddButton'; -import InnleggelsesperiodeFormModal from '../innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal'; +import InnleggelsesperiodeFormModal, { FieldName } from '../innleggelsesperiodeFormModal/InnleggelsesperiodeFormModal'; import Innleggelsesperiodeliste from '../innleggelsesperiodeliste/Innleggelsesperiodeliste'; import WriteAccessBoundContent from '../write-access-bound-content/WriteAccessBoundContent'; import styles from './innleggelsesperiodeoversikt.css'; -export enum FieldName { - INNLEGGELSESPERIODER = 'innleggelsesperioder', -} - interface InnleggelsesperiodeoversiktProps { onInnleggelsesperioderUpdated: () => void; } diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-langvarig-sykdom-form/VurderingLangvarigSykdomForm.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-langvarig-sykdom-form/VurderingLangvarigSykdomForm.tsx" index 0baedd9501..48f1352365 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-langvarig-sykdom-form/VurderingLangvarigSykdomForm.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-langvarig-sykdom-form/VurderingLangvarigSykdomForm.tsx" @@ -13,7 +13,6 @@ import { finnMaksavgrensningerForPerioder, slåSammenSammenhengendePerioder, } from '../../../util/periodUtils'; -import { lagLangvarigSykdomVurdering } from '../../../util/vurderingUtils'; import ContainerContext from '../../context/ContainerContext'; import { fomDatoErFørTomDato, harBruktDokumentasjon, required } from '../../form/validators'; import AddButton from '../add-button/AddButton'; @@ -24,6 +23,7 @@ import StjerneIkon from '../vurdering-av-form/StjerneIkon'; import styles from '../vurdering-av-form/vurderingForm.css'; import VurderingDokumentfilter from '../vurdering-dokumentfilter/VurderingDokumentfilter'; import vurderingDokumentfilterOptions from '../vurdering-dokumentfilter/vurderingDokumentfilterOptions'; +import { finnBenyttedeDokumenter } from '../../../util/dokumentUtils'; // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyType = any; @@ -36,6 +36,25 @@ export enum FieldName { PERIODER = 'perioder', } +const lagLangvarigSykdomVurdering = ( + formState: VurderingLangvarigSykdomFormState, + alleDokumenter: Dokument[], +): Partial => { + const resultat = formState[FieldName.HAR_LANGVARIG_SYKDOM]; + const tekst = formState[FieldName.VURDERING_LANGVARIG_SYKDOM]; + const dokumenter = finnBenyttedeDokumenter(formState[FieldName.DOKUMENTER], alleDokumenter); + const perioder = formState[FieldName.PERIODER].map( + periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), + ); + + return { + resultat, + tekst, + perioder, + dokumenter, + }; +}; + export interface VurderingLangvarigSykdomFormState { [FieldName.VURDERING_LANGVARIG_SYKDOM]?: string; [FieldName.HAR_LANGVARIG_SYKDOM]?: Vurderingsresultat; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-livets-sluttfase-form/VurderingAvLivetsSluttfaseForm.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-livets-sluttfase-form/VurderingAvLivetsSluttfaseForm.tsx" index 4505e1e6a3..7762c3814c 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-livets-sluttfase-form/VurderingAvLivetsSluttfaseForm.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-livets-sluttfase-form/VurderingAvLivetsSluttfaseForm.tsx" @@ -13,7 +13,6 @@ import { finnMaksavgrensningerForPerioder, slåSammenSammenhengendePerioder, } from '../../../util/periodUtils'; -import { lagSluttfaseVurdering } from '../../../util/vurderingUtils'; import ContainerContext from '../../context/ContainerContext'; import { fomDatoErFørTomDato, harBruktDokumentasjon, required } from '../../form/validators'; import AddButton from '../add-button/AddButton'; @@ -24,6 +23,7 @@ import StjerneIkon from '../vurdering-av-form/StjerneIkon'; import styles from '../vurdering-av-form/vurderingForm.css'; import VurderingDokumentfilter from '../vurdering-dokumentfilter/VurderingDokumentfilter'; import vurderingDokumentfilterOptions from '../vurdering-dokumentfilter/vurderingDokumentfilterOptions'; +import { finnBenyttedeDokumenter } from '../../../util/dokumentUtils'; // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyType = any; @@ -36,6 +36,25 @@ export enum FieldName { PERIODER = 'perioder', } +const lagSluttfaseVurdering = ( + formState: VurderingAvLivetsSluttfaseFormState, + alleDokumenter: Dokument[], +): Partial => { + const resultat = formState[FieldName.ER_I_LIVETS_SLUTTFASE]; + const tekst = formState[FieldName.VURDERING_AV_LIVETS_SLUTTFASE]; + const dokumenter = finnBenyttedeDokumenter(formState[FieldName.DOKUMENTER], alleDokumenter); + const perioder = formState[FieldName.PERIODER].map( + periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), + ); + + return { + resultat, + tekst, + perioder, + dokumenter, + }; +}; + export interface VurderingAvLivetsSluttfaseFormState { [FieldName.VURDERING_AV_LIVETS_SLUTTFASE]?: string; [FieldName.ER_I_LIVETS_SLUTTFASE]?: Vurderingsresultat; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-tilsynsbehov-form/VurderingAvTilsynsbehovForm.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-tilsynsbehov-form/VurderingAvTilsynsbehovForm.tsx" index 529a09e658..22a14afd41 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-tilsynsbehov-form/VurderingAvTilsynsbehovForm.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-tilsynsbehov-form/VurderingAvTilsynsbehovForm.tsx" @@ -12,7 +12,6 @@ import { finnMaksavgrensningerForPerioder, slåSammenSammenhengendePerioder, } from '../../../util/periodUtils'; -import { lagTilsynsbehovVurdering } from '../../../util/vurderingUtils'; import ContainerContext from '../../context/ContainerContext'; import { fomDatoErFørTomDato, harBruktDokumentasjon, required } from '../../form/validators'; import AddButton from '../add-button/AddButton'; @@ -23,6 +22,8 @@ import VurderingDokumentfilter from '../vurdering-dokumentfilter/VurderingDokume import vurderingDokumentfilterOptions from '../vurdering-dokumentfilter/vurderingDokumentfilterOptions'; import StjerneIkon from '../vurdering-av-form/StjerneIkon'; import styles from '../vurdering-av-form/vurderingForm.css'; +import Vurderingsresultat from '../../../types/Vurderingsresultat'; +import { finnBenyttedeDokumenter } from '../../../util/dokumentUtils'; // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyType = any; @@ -34,6 +35,27 @@ export enum FieldName { DOKUMENTER = 'dokumenter', } +const lagTilsynsbehovVurdering = ( + formState: VurderingAvTilsynsbehovFormState, + alleDokumenter: Dokument[], +): Partial => { + const resultat = formState[FieldName.HAR_BEHOV_FOR_KONTINUERLIG_TILSYN_OG_PLEIE] + ? Vurderingsresultat.OPPFYLT + : Vurderingsresultat.IKKE_OPPFYLT; + + const perioder = formState[FieldName.PERIODER].map( + periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), + ); + const begrunnelse = formState[FieldName.VURDERING_AV_KONTINUERLIG_TILSYN_OG_PLEIE]; + + return { + resultat, + perioder, + tekst: begrunnelse, + dokumenter: finnBenyttedeDokumenter(formState[FieldName.DOKUMENTER], alleDokumenter), + }; +}; + export interface VurderingAvTilsynsbehovFormState { [FieldName.VURDERING_AV_KONTINUERLIG_TILSYN_OG_PLEIE]?: string; [FieldName.HAR_BEHOV_FOR_KONTINUERLIG_TILSYN_OG_PLEIE]?: boolean; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-to-omsorgspersoner-form/VurderingAvToOmsorgspersonerForm.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-to-omsorgspersoner-form/VurderingAvToOmsorgspersonerForm.tsx" index b7f7bd2d66..ffa3f9a42e 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-to-omsorgspersoner-form/VurderingAvToOmsorgspersonerForm.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/vurdering-av-to-omsorgspersoner-form/VurderingAvToOmsorgspersonerForm.tsx" @@ -11,7 +11,6 @@ import { finnMaksavgrensningerForPerioder, slåSammenSammenhengendePerioder, } from '../../../util/periodUtils'; -import { lagToOmsorgspersonerVurdering } from '../../../util/vurderingUtils'; import ContainerContext from '../../context/ContainerContext'; import { fomDatoErFørTomDato, harBruktDokumentasjon, required } from '../../form/validators'; import AddButton from '../add-button/AddButton'; @@ -19,6 +18,8 @@ import DeleteButton from '../delete-button/DeleteButton'; import DetailViewVurdering from '../detail-view-vurdering/DetailViewVurdering'; import DokumentLink from '../dokument-link/DokumentLink'; import styles from '../vurdering-av-form/vurderingForm.css'; +import { finnBenyttedeDokumenter } from '../../../util/dokumentUtils'; +import Vurderingsresultat from '../../../types/Vurderingsresultat'; // eslint-disable-next-line @typescript-eslint/no-explicit-any type AnyType = any; @@ -30,6 +31,26 @@ export enum FieldName { DOKUMENTER = 'dokumenter', } +const lagToOmsorgspersonerVurdering = ( + formState: VurderingAvToOmsorgspersonerFormState, + alleDokumenter: Dokument[], +): Partial => { + const resultat = formState[FieldName.HAR_BEHOV_FOR_TO_OMSORGSPERSONER] + ? Vurderingsresultat.OPPFYLT + : Vurderingsresultat.IKKE_OPPFYLT; + const perioder = formState[FieldName.PERIODER].map( + periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), + ); + const begrunnelse = formState[FieldName.VURDERING_AV_TO_OMSORGSPERSONER]; + + return { + resultat, + perioder, + tekst: begrunnelse, + dokumenter: finnBenyttedeDokumenter(formState[FieldName.DOKUMENTER], alleDokumenter), + }; +}; + export interface VurderingAvToOmsorgspersonerFormState { [FieldName.VURDERING_AV_TO_OMSORGSPERSONER]?: string; [FieldName.HAR_BEHOV_FOR_TO_OMSORGSPERSONER]?: boolean; diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/util/dokumentUtils.ts" "b/packages/fakta-medisinsk-vilk\303\245r/src/util/dokumentUtils.ts" index 07c859d9c0..84c1e5fd4a 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/util/dokumentUtils.ts" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/util/dokumentUtils.ts" @@ -4,7 +4,6 @@ import { StrukturerDokumentFormFieldName as FieldName, StrukturerDokumentFormState, } from '../types/StrukturerDokumentFormState'; -import { ikkeDuplikatValue } from '../ui/components/strukturer-dokument-form/StrukturerDokumentForm'; export const finnBenyttedeDokumenter = (benyttedeDokumentIder: string[], alleDokumenter: Dokument[]): Dokument[] => alleDokumenter.filter(dokument => benyttedeDokumentIder.includes(dokument.id)); @@ -13,7 +12,7 @@ export const lagStrukturertDokument = (formState: StrukturerDokumentFormState, d ...dokument, type: formState[FieldName.INNEHOLDER_MEDISINSKE_OPPLYSNINGER], datert: formState[FieldName.DATERT], - duplikatAvId: formState[FieldName.DUPLIKAT_AV_ID] === ikkeDuplikatValue ? null : formState[FieldName.DUPLIKAT_AV_ID], + duplikatAvId: formState[FieldName.DUPLIKAT_AV_ID] === 'ikkeDuplikat' ? null : formState[FieldName.DUPLIKAT_AV_ID], }); export const dokumentSorter = (dok1: Dokument, dok2: Dokument): number => { diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/util/vurderingUtils.ts" "b/packages/fakta-medisinsk-vilk\303\245r/src/util/vurderingUtils.ts" deleted file mode 100644 index 7454590e34..0000000000 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/util/vurderingUtils.ts" +++ /dev/null @@ -1,103 +0,0 @@ -import { Period } from '@fpsak-frontend/utils'; -import { - FieldName as TilsynFieldName, - VurderingAvTilsynsbehovFormState, -} from '../ui/components/vurdering-av-tilsynsbehov-form/VurderingAvTilsynsbehovForm'; -import { - FieldName as ToOmsorgspersonerFieldName, - VurderingAvToOmsorgspersonerFormState, -} from '../ui/components/vurdering-av-to-omsorgspersoner-form/VurderingAvToOmsorgspersonerForm'; -import { - FieldName as LivetsSluttfaseFieldName, - VurderingAvLivetsSluttfaseFormState, -} from '../ui/components/vurdering-av-livets-sluttfase-form/VurderingAvLivetsSluttfaseForm'; -import Vurderingsresultat from '../types/Vurderingsresultat'; -import Dokument from '../types/Dokument'; -import { Vurderingsversjon } from '../types/Vurdering'; -import { finnBenyttedeDokumenter } from './dokumentUtils'; -import { - FieldName as LangvarigSykdomFieldName, - VurderingLangvarigSykdomFormState, -} from '../ui/components/vurdering-av-langvarig-sykdom-form/VurderingLangvarigSykdomForm'; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -type AnyType = any; - -export const lagTilsynsbehovVurdering = ( - formState: VurderingAvTilsynsbehovFormState, - alleDokumenter: Dokument[], -): Partial => { - const resultat = formState[TilsynFieldName.HAR_BEHOV_FOR_KONTINUERLIG_TILSYN_OG_PLEIE] - ? Vurderingsresultat.OPPFYLT - : Vurderingsresultat.IKKE_OPPFYLT; - - const perioder = formState[TilsynFieldName.PERIODER].map( - periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), - ); - const begrunnelse = formState[TilsynFieldName.VURDERING_AV_KONTINUERLIG_TILSYN_OG_PLEIE]; - - return { - resultat, - perioder, - tekst: begrunnelse, - dokumenter: finnBenyttedeDokumenter(formState[TilsynFieldName.DOKUMENTER], alleDokumenter), - }; -}; - -export const lagToOmsorgspersonerVurdering = ( - formState: VurderingAvToOmsorgspersonerFormState, - alleDokumenter: Dokument[], -): Partial => { - const resultat = formState[ToOmsorgspersonerFieldName.HAR_BEHOV_FOR_TO_OMSORGSPERSONER] - ? Vurderingsresultat.OPPFYLT - : Vurderingsresultat.IKKE_OPPFYLT; - const perioder = formState[TilsynFieldName.PERIODER].map( - periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), - ); - const begrunnelse = formState[ToOmsorgspersonerFieldName.VURDERING_AV_TO_OMSORGSPERSONER]; - - return { - resultat, - perioder, - tekst: begrunnelse, - dokumenter: finnBenyttedeDokumenter(formState[TilsynFieldName.DOKUMENTER], alleDokumenter), - }; -}; - -export const lagSluttfaseVurdering = ( - formState: VurderingAvLivetsSluttfaseFormState, - alleDokumenter: Dokument[], -): Partial => { - const resultat = formState[LivetsSluttfaseFieldName.ER_I_LIVETS_SLUTTFASE]; - const tekst = formState[LivetsSluttfaseFieldName.VURDERING_AV_LIVETS_SLUTTFASE]; - const dokumenter = finnBenyttedeDokumenter(formState[LivetsSluttfaseFieldName.DOKUMENTER], alleDokumenter); - const perioder = formState[LivetsSluttfaseFieldName.PERIODER].map( - periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), - ); - - return { - resultat, - tekst, - perioder, - dokumenter, - }; -}; - -export const lagLangvarigSykdomVurdering = ( - formState: VurderingLangvarigSykdomFormState, - alleDokumenter: Dokument[], -): Partial => { - const resultat = formState[LangvarigSykdomFieldName.HAR_LANGVARIG_SYKDOM]; - const tekst = formState[LangvarigSykdomFieldName.VURDERING_LANGVARIG_SYKDOM]; - const dokumenter = finnBenyttedeDokumenter(formState[LangvarigSykdomFieldName.DOKUMENTER], alleDokumenter); - const perioder = formState[LangvarigSykdomFieldName.PERIODER].map( - periodeWrapper => new Period((periodeWrapper as AnyType).period.fom, (periodeWrapper as AnyType).period.tom), - ); - - return { - resultat, - tekst, - perioder, - dokumenter, - }; -}; diff --git a/packages/fakta-omsorgsdager/src/types/Period.ts b/packages/fakta-omsorgsdager/src/types/Period.ts index 90b47170e5..999d46f283 100644 --- a/packages/fakta-omsorgsdager/src/types/Period.ts +++ b/packages/fakta-omsorgsdager/src/types/Period.ts @@ -1,4 +1,4 @@ -import { dateFromString } from '../util/dateUtils'; +import dayjs from 'dayjs'; export class Period { fom: string; @@ -10,10 +10,14 @@ export class Period { this.tom = tom; } + dateFromString(dateString: string) { + return dayjs(dateString, ['YYYY-MM-DD', 'DD.MM.YYYY']).utc(true); + } + includesDate(dateString: string) { - const dateInQuestion = dateFromString(dateString); - const fomDayjs = dateFromString(this.fom); - const tomDayjs = dateFromString(this.tom); + const dateInQuestion = this.dateFromString(dateString); + const fomDayjs = this.dateFromString(this.fom); + const tomDayjs = this.dateFromString(this.tom); return ( (dateInQuestion.isSame(fomDayjs) || dateInQuestion.isAfter(fomDayjs)) && (dateInQuestion.isSame(tomDayjs) || dateInQuestion.isBefore(tomDayjs)) @@ -37,14 +41,14 @@ export class Period { } startsBefore(otherPeriod: Period) { - const dateInQuestion = dateFromString(otherPeriod.fom); - const periodFom = dateFromString(this.fom); + const dateInQuestion = this.dateFromString(otherPeriod.fom); + const periodFom = this.dateFromString(this.fom); return periodFom.isBefore(dateInQuestion); } endsAfter(otherPeriod: Period) { - const dateInQuestion = dateFromString(otherPeriod.tom); - const periodTom = dateFromString(this.tom); + const dateInQuestion = this.dateFromString(otherPeriod.tom); + const periodTom = this.dateFromString(this.tom); return periodTom.isAfter(dateInQuestion); } }