# GVIS — quiXzoom Integration Spec ## Mission Type Mapping Varje GVIS-objekt blir en quiXzoom mission type med AI-prompt och zoomer-instruktion. ### Exempel: TRN-001 (Asfalt) ```json { "mission_type": "gvis-trn-001", "namn": "Asfaltinspektion", "gvis_id": "TRN-001", "beskrivning": "Dokumentera asfaltens skick på utsatt sträcka", "betalning": "150-300 kr", "tid": "15-30 min", "utrustning": "Smartphone", "ai_prompt": { "system": "Du är en asfaltspecialist. Bedöm asfaltens skick från fotografier.", "kontrollpunkter": [ "Identifiera potthål (djup >2cm, diameter >10cm)", "Identifiera sprickor (bredd >2cm, längd >30cm)", "Identifiera sättningar (djup >3cm)", "Identifiera spårskärpning (djup >1cm)" ], "output": { "skick": "0-100", "risknivå": "1-5", "prioritet": "information/underhåll/åtgärd/akut/kritisk", "typ_av_skada": "string", "omfattning": "string", "rekommenderad_åtgärd": "string", "åtgärdstid": "string" } }, "zoomer_instruktion": { "steg": [ "Navigera till utsatt GPS-position", "Fotografera asfalten rakt ovanifrån (90°)", "Fotografera asfalten i 45° vinkel för djupbedömning", "Fotografera eventuella skador med närbild", "Fotografera omgivningen för kontext", "Bekräfta position i appen" ], "krav": [ "Minst 3 foton", "Dagsljus eller god belysning", "Inga fordon i bild", "GPS aktiverad" ] }, "validering": { "min_foton": 3, "max_avstand_m": 10, "min_upplosning": "12MP", "godkand_vinkel": ["90", "45"] } } ``` ### Exempel: HAM-024 (Livboj) ```json { "mission_type": "gvis-ham-024", "namn": "Livbojskontroll", "gvis_id": "HAM-024", "beskrivning": "Verifiera att livboj finns på plats och är i brukbart skick", "betalning": "100-200 kr", "tid": "5-10 min", "utrustning": "Smartphone", "ai_prompt": { "system": "Du är en sjösäkerhetsspecialist. Bedöm livbojens skick.", "kontrollpunkter": [ "Livboj finns på plats", "Stolpen står rakt (lutning <5°)", "Lina finns och är hel", "Bojen är hel (inga sprickor/hål)", "Reflex finns och är synlig", "Skylt finns och är läsbar", "Fri åtkomst (inga hinder inom 2m)", "Ingen korrosion på stolpe/fäste", "Inga hinder som blockerar användning" ], "output": { "skick": "0-100", "risknivå": "1-5", "saknas": "boolean", "skadad": "boolean", "blockerad": "boolean" } }, "zoomer_instruktion": { "steg": [ "Navigera till livbojens GPS-position", "Fotografera hela livbojen med omgivning (5m avstånd)", "Fotografera närbild av boj, lina och reflex", "Fotografera stolpe och fundament", "Fotografera eventuella hinder", "Bekräfta position i appen" ] } } ``` ## API Endpoints ### Skapa GVIS-mission ``` POST /api/v1/missions/gvis { "gvis_id": "TRN-001", "position": {"lat": 59.3293, "lng": 18.0686}, "radius_m": 50, "priority": "normal", "deadline": "2026-07-01T23:59:59Z" } Response: { "mission_id": "M-123456", "status": "active", "estimated_completion": "24h", "zoomers_notified": 12 } ``` ### Hämta GVIS-observation ``` GET /api/v1/observations/{observation_id} Response: { "gvis_id": "TRN-001", "objekt": "Asfalt", "bedömning": { "skick": 23, "risknivå": 4, "prioritet": "akut", "typ_av_skada": "potthål_djup_>5cm", "omfattning": "punkt_0.5m2" }, "media": [...], "zoomer": {"id": "Z-78432", "rating": 4.8}, "ai_konfidens": 0.94, "human_reviewed": true } ``` ### Batch-analys (Landvex) ``` POST /api/v1/analyze/contradictions { "kommun": "Stockholm", "gvis_filter": ["TRN-001", "TRN-002", "BEL-013"], "period": "2026-Q2", " jämför_med": "officiell_rapport_2026" } Response: { "kontradiktioner": [ { "typ": "underhåll_vs_verklighet", "allvarlighet": "hög", "beskrivning": "Kommunen rapporterar 98% fungerande gatlyktor, GVIS visar 23% trasiga i område X", "påverkade_objekt": 47, "rekommenderad_åtgärd": "Omedelbar inspektion av område X" } ] } ``` ## Dataflöde ``` ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────┐ │ Zoomer │────▶│ quiXzoom │────▶│ GVIS │────▶│ Landvex │ │ (App) │ │ Backend │ │ Normalizer │ │ Analysis │ └─────────────┘ └──────────────┘ └─────────────┘ └─────────────┘ │ │ ▼ ▼ ┌──────────────┐ ┌─────────────┐ │ AI-bedomning │ │ Kontradiktion│ │ (Vision API) │ │ Rapport │ └──────────────┘ └─────────────┘ │ │ ▼ ▼ ┌──────────────┐ ┌─────────────┐ │ Kvalitets- │ │ Kund │ │ kontroll │ │ (Kommun) │ └──────────────┘ └─────────────┘ ``` --- *GVIS-quiXzoom Integration v1.0 — 2026-06-26*